#ifdef a
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>

typedef int BTTYPE;
typedef struct BinaryTreeNode {
	BTTYPE val;
	struct BinaryTreeNode* left;
	struct BinaryTreeNode* right;
}BTNode;

extern BTNode* BTTreeCreat(int* array, int size, BTTYPE  flag, int* index);//二叉树的初始化
extern BTNode* BTTreeInit(int* array, int size, BTTYPE  flag);
extern BTNode* BuyBTNode(BTTYPE val);//节点创建
extern void PreOrder(BTNode* root);//前序遍历
extern void InOrder(BTNode* root);//中序遍历
extern void PosOrder(BTNode* root);//后序遍历
extern void LevelOrder(BTNode* root);//层序遍历
extern int BinaryTreeSize(BTNode* root);//二叉树节点总个数
extern int BinaryTreeLeverSize(BTNode* root, int k);//二叉树第k层节点个数
extern int BinaryTreeLeafSize(BTNode* root);//二叉树叶子节点个数
extern int BinaryTreeHeight(BTNode* root);//二叉树的高度
extern BTNode* BinartTreeFind(BTNode* root, BTTYPE val);//二叉树中的查找
extern void BinaryTreeDestory(BTNode** root);//二叉树的销毁-》左右根
extern int BinaryTreeComplete(BTNode* root);//判断是否为完全二叉树
void TestBT();//测试

#endif